/* Die Klasse ausMediumSG ist eine Simulationsklasse. 
 * es beinhaltet alle ausgeliehenen Buecher von 
 * jeden Sachgebiete. Der Konstruktor hat im Parameter
 * den Wert vom Sachgebiet, das der Benutzer nutzen will 
 *  
 * Datei : ausMediumSG.java            Autor : Kouende Steeve
 * Datum : 27.11.2011
 */

package statistik; /* diese package beinhaltet
 * alle notwendige klasse,
 * die zur Ausfuehrung diese 
 * Klasse benoetigt werden 
 */

import java.util.ArrayList;
import java.util.List;

import medienverwaltung.Exemplar;
import personenverwaltung.Ausleihe;
import personenverwaltung.Vorgangsverwaltung;

/* 
 * oeffentliche Variable:
 * int nummer : (jeder nummer (1-5) entspricht ein Sachgebiet)
 * 
 * private variable :
 * String sachgebiet (name von sachgebiet)
 * List <String> ausMedium; (Liste von ausgeliehene 
 *  Buecher je nach Sachgebiet)
 * List<String> ausInformatik = new ArrayList<String> ()
 * List<String> ausWirtschaft = new ArrayList<String> ()
 * ausElektrotechnik = new ArrayList<String> ()
 * List<String> 
 ausLebensmitteltechnologie = new ArrayList<String> ()
 * List<String> 
 ausSozialwissenschaften = new ArrayList<String> ()
 * 
 * 
 * Methode :
 * 
 * List gibAusgelieheneMedium ()
 * (ist parameterlos und zurueckgibt eine List 
 *   von alle ausgeliehene Buch je nach sachgebiet)
 *   
 * */

public class ausMediumSG
{
  int nummer;
  private ArrayList<Exemplar> exemplare;


  public ausMediumSG (int i)
  {
    nummer = i;
    erzeugeListe ();
  }


  public void main ()
  {
    ausMediumSG s = new ausMediumSG (1);
    System.out.println (s.gibAusgelieheneMedium ().size ());
  }


  public List gibAusgelieheneMedium ()
  {
    String sachgebiet;
    List<String> ausMedium = new ArrayList<String> ();

    switch (nummer)
    {
    case 1:
      sachgebiet = "Angewandte Informatik";
      List<String> ausInformatik = new ArrayList<String> ()
      {
        {
          add ("uml");
          add ("assembler");
          add ("datenbank");
          add ("betriebsystem");
          add ("assembler");
          add ("java");
          add ("datenbank");
          add ("uml");
          add ("datenbank");
          add ("uml");
          add ("betriebsystem");
          add ("sap");
          add ("itsicherheit");
          add ("programmierung");
          add ("authomatentheorie");
          add ("softwareengieurie");
          add ("itsicherheit");
          add ("programmierung");
          add ("java");
        }
      };

      ausMedium = ausInformatik;
      break;

    case 2:
      sachgebiet = "wirtschaft";
      List<String> ausWirtschaft = new ArrayList<String> ()
      {
        {
          add ("steuer");
          add ("recht");
          add ("production");
          add ("kosten");
          add ("logistik");
          add ("controlling");
          add ("production");
          add ("kosten");
          add ("production");
          add ("recht");
          add ("recht");
          add ("kostenrechnung");
          add ("finanzierung");
          add ("bankwesen");
          add ("bilanzen");
          add ("recht");
          add ("buchhandlung");
          add ("production");
          add ("kosten");
          add ("production");
          add ("controlling");
          add ("bilanzen");
        }
      };
      ausMedium = ausWirtschaft;
      break;
    case 3:
      sachgebiet = "elektrotechnik";
      List<String> ausElektrotechnik = new ArrayList<String> ()
      {
        {
          add ("mikrocontroller");
          add ("energie");
          add ("digitaltechnik");
          add ("energieVersorgung");
          add ("elektromagnetismus");
          add ("elektrisches netzwerk");
          add ("signalverarbeitung");
          add ("solarenergie");
          add ("digitaltechnik");
          add ("steuerungstechnik");
          add ("messen");
          add ("energie");
          add ("digitaltechnik");
          add ("energieVersorgung");
          add ("elektromagnetismus");
          add ("signalverarbeitung");
          add ("solarenergie");
          add ("solarenergie");
          add ("digitaltechnik");
          add ("steuerungstechnik");
        }
      };
      ausMedium = ausElektrotechnik;
      break;
    case 4:
      sachgebiet = "lebensmitteltechnologie";
      List<String> ausLebensmitteltechnologie = new ArrayList<String> ()
      {
        {
          add ("lebensmittel chemiker");
          add ("thermische verfahren");
          add ("thermische verfahren");
          add ("chemische");
          add ("biotechnologische verfahren");
          add ("thermische verfahren");
          add ("chemische");
          add ("thermische verfahren");
          add ("lebensmittel verarbeitung");
          add ("lebensmittel chemiker");
          add ("biotechnologische verfahren");
          add ("thermische verfahren");
          add ("chemische");
          add ("thermische verfahren");
          add ("lebensmittel verarbeitung");
        }
      };
      ausMedium = ausLebensmitteltechnologie;
      break;
    case 5:
      sachgebiet = "sozialwissenschaften";
      List<String> ausSozialwissenschaften = new ArrayList<String> ()
      {
        {
          add ("Demokratie ohne Volk");
          add ("sag die Wahrheit");
          add ("Postdemokratie");
          add ("die politische Differenz");
          add ("sag die Wahrheit");
          add ("Postdemokratie");
          add ("Strategien des Gegenhandeln");
          add ("Postdemokratie");
          add ("Kriegskultur");
          add ("sag die Wahrheit");
          add ("Postdemokratie");
          add ("Orgsnisation und Stoerung");
          add ("die politische Differenz");
          add ("Demokratie ohne Volk");
          add ("Kriegskultur");
          add ("Strategien des Gegenhandeln");
          add ("sag die Wahrheit");
        }
      };
      ausMedium = ausSozialwissenschaften;
      break;

    }

    return ausMedium;
  }


  private void erzeugeListe ()
  {
    Vorgangsverwaltung vVerw = new Vorgangsverwaltung ();
    ArrayList<Ausleihe> auslListe = (ArrayList<Ausleihe>) vVerw
        .gibAusleihListe ();
    exemplare = new ArrayList<Exemplar> ();

    for (Ausleihe ausleihe : auslListe)
    {
      exemplare.add (ausleihe.gibExemplar ());
    }
  }


  private void sortieren ()
  {
    // TODO: Exemplar-Liste sortieren
  }
}
